home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr47 / eeboot20.zip / SERIAL0.SRC < prev   
Text File  |  1993-06-23  |  1KB  |  67 lines

  1. *
  2. * SERIAL.SRC
  3. *
  4. * functions for interaction over serial line
  5. *
  6. * (C) 1992 Fred Martin
  7. * All rights reserved
  8. *
  9. *
  10. * contains:
  11. *
  12. * void printdec(int n)        prints value of n as unsigned decimal number.
  13. *                Appends CR and LF characters.
  14. *
  15. * int getchar()            waits for serial character and returns that
  16. *                value.
  17. *
  18.  
  19. RDRF    EQU    $20    ; Receive Data Register Full
  20. TDRE    EQU    $80    ; Transmit Data Register Empty
  21.  
  22. CR    EQU    $0D
  23. LF    EQU    $0A
  24.  
  25. printdec EQU    *
  26.     TSX
  27.     LDD    2,X        ; get number
  28.     LDY    #5        ; num of digits
  29.     LDX    #10
  30. decdvlp    IDIV            ; least significant digit in B
  31.     PSHB            ; save it
  32.     LDD    #10
  33.     XGDX
  34.     DEY
  35.     BNE    decdvlp
  36.  
  37. * have five digs saved on stack; start printing when not zero
  38.     LDAB    #5        ; num digs to output
  39. decoutlp PULA
  40.     ADDA    #'0'
  41.     BSR    putchar
  42.     DECB
  43.     BNE    decoutlp
  44.  
  45.     LDAA    #CR
  46.     BSR    putchar
  47.     LDAA    #LF
  48.     BSR    putchar
  49.  
  50.     RTS
  51.  
  52. *
  53. * write character in A over serial line
  54. * destroys X register; preserves others
  55. *
  56. putchar    EQU    *
  57.     LDX    #BASE
  58.     BRCLR    SCSR,X,TDRE,*    ; wait for serial line to finish last char
  59.     STAA    SCDR,X
  60.     RTS
  61.  
  62. getchar EQU    *
  63.     LDX    #BASE
  64.     BRCLR    SCSR,X;RDRF,*    ; wait for serial char
  65.     LDAB    SCDR,X
  66.     CLRA
  67.     RTS